package com.huluobo.a2308douyindemo.demo

import android.content.Context
import android.widget.ImageView
import androidx.databinding.BindingAdapter
import com.bumptech.glide.Glide
import com.huluobo.a2308douyindemo.utils.ImageUtils
import com.youth.banner.Banner
import com.youth.banner.loader.ImageLoader

/**
 *  Created by LC on 2025/10/15.
 *  DataBinding中加载图片的方法,需要通过   @BindingAdapter注解实现
 *  其中方法的方法名无所谓,因为调用不到,能调用的位置是@BindingAdapter中的字符串
 *  参数位置是固定的,第一个第一要是ImageView,第二个一定要是url,并且url是一个可空的类型
 */
object BindAdapter {

    @BindingAdapter("bindImageUrl")
    @JvmStatic
    fun loadImage(imageView: ImageView, url: String?) {
        if (url != null) {
            Glide.with(imageView.context).load(url).into(imageView)
        }
    }

    @BindingAdapter("bindBanner")
    @JvmStatic
    fun loadBanner(banner: Banner, images: List<String>?) {
        if (!images.isNullOrEmpty()) {
            banner.setImageLoader(object : ImageLoader() {
                override fun displayImage(context: Context?, path: Any?, imageView: ImageView?) {
                    if (context != null && imageView != null) {
                        ImageUtils.loadImage(context, path.toString(), imageView)
                    }
                }
            })
            //更新数据源并且启动banner
            banner.update(images)
        }
    }
}